1. Field of the Invention
This invention relates to improvements in software and hardware design verification. More particularly, this invention relates to the provision of a standalone verification procedure that can be executed and manipulated by a developer of a software or hardware design, in which the verification procedure was generated by a computer-implemented testing framework that is not available to the developer.
2. Description of the Related Art
The meanings of acronyms and certain terminology used herein are given in Table 1 and Table 2. The terms Sun, Sun Microsystems, Java, JavaCard, J2EE, J2ME, J2SE, and the Sun logo are trademarks or registered trademarks of Sun Microsystems, Inc., in the United States of America and other countries. All other company and product names may be trademarks of their respective companies.
TABLE 1CDCConnected device configuration. An arrangementappropriate for 32-bit architectures requiringmore than 2 MB of memory. An example of such adevice is a Net TV box.CLDCConnected, limited device configuration. CLDC issuitable for devices with 16/32-bit RISC/CISCmicroprocessors/controllers, having as little as160 KB of total memory available.J2EEJava 2 Enterprise EditionJ2MEJava 2 Micro EditionJ2SEJava 2 Standard EditionJavaCardA Java-based technology that enables Javaapplications to run on smart cards and otherdevices with limited memory.
TABLE 2APIApplication programming interfaceJADJava application descriptorJARJava archiveMIDletA MIDP applicationMIDPMobile information device profile. A set of JavaAPIs which, together with the CLDC, provides acomplete J2ME application runtime environmenttargeted at mobile information devices.
Tools have been developed in recent years to aid in the design verification of hardware and software systems, for example software suites, hardware circuitry, and programmable logic designs. In order to assure that the design complies with its specifications, it is common to generate a large number of input or instruction sequences to assure that the design operates as intended under a wide variety of circumstances.
In general, test systems produce a report indicating whether tests have been passed or failed, and, in some cases may even indicate a module that is estimated to be faulty. Where the designer has himself constructed the test generator system, adjustment of the test engine and further analysis of design flaws may be possible. However, in other cases the testing framework and the design are controlled by different parties. For example, the designer may employ the services of a commercial design-testing agency that offers its services to the public. In such cases, proprietary considerations may limit the ability of the testing agency to make details of its test system available to the designer. Consequently, the designer, while aware of a design flaw, may be frustrated in evaluating its root causes, as the report received from the testing agency provides insufficient information.
A specification known as the Mobile Information Device Profile (MIDP) defines a set of Java application programming interfaces that provide an application runtime environment for mobile information devices, such as mobile telephones. The Mobile Information Device Profile is defined in the document, Mobile Information Device Profile (JSR-37), JCP Specification, Java 2 Platform, Micro Edition, 1.0a (Sun Microsystems Inc., Santa Clara, Calif., December 2000).
The Mobile Information Device Profile builds on the Connected Limited Device Configuration (CLDC) of the Java 2 Platform, Micro Edition (J2ME) (available from Sun Microsystems Inc., Santa Clara, Calif.). CLDC and J2ME specifically address the devices used in the vast market, which covers mobile information devices ranging from small devices, such as smart cards or pagers, to powerful set-top boxes. CLDC technology includes a virtual machine, which is a small Java virtual machine that is adapted to the constraints of small mobile information devices. MIDP applications that use the MIDP and CLDC APIs are known as MIDlets.
Mobile information devices are currently a fertile source of new designs. Both the devices themselves and their MIDlets require thorough design verification before release to the purchasing public. The present invention focuses principally on design verification of devices.